From: Ian Jackson Date: Tue, 21 Sep 2010 15:08:38 +0000 (+0100) Subject: libxl, buildmakevars2file: Do not relink libxl each time X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~11453 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=e1d00a45e0f526c7ba98eba7f400987645f18a86;p=xen.git libxl, buildmakevars2file: Do not relink libxl each time Make Config.mk's definition of buildmakevars2file and tools/libxl/Makefile's rule for _libxl_paths.h generate their files to temporary files and only rename them into place if the intended file has changed. This gets rid of unnecessarily compilation and link steps. Add *.tmp to .hgignore. Signed-off-by: Ian Jackson Acked-by: Keir Fraser --- diff --git a/.hgignore b/.hgignore index 965992d787..e9c08742e7 100644 --- a/.hgignore +++ b/.hgignore @@ -11,6 +11,7 @@ .*\.tar\.bz2$ .*\.tar\.gz$ .*~$ +.*\.tmp$ .*\.flc$ .*\.orig$ .*\.rej$ diff --git a/Config.mk b/Config.mk index f80732a618..33a2635249 100644 --- a/Config.mk +++ b/Config.mk @@ -120,16 +120,17 @@ buildmakevars2file = $(eval $(call buildmakevars2file-closure,$(1))) define buildmakevars2file-closure .PHONY: genpath genpath: - rm -f $(1); \ - echo "SBINDIR=\"$(SBINDIR)\"" >> $(1); \ - echo "BINDIR=\"$(BINDIR)\"" >> $(1); \ - echo "LIBEXEC=\"$(LIBEXEC)\"" >> $(1); \ - echo "LIBDIR=\"$(LIBDIR)\"" >> $(1); \ - echo "SHAREDIR=\"$(SHAREDIR)\"" >> $(1); \ - echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> $(1); \ - echo "XENFIRMWAREDIR=\"$(XENFIRMWAREDIR)\"" >> $(1); \ - echo "XEN_CONFIG_DIR=\"$(XEN_CONFIG_DIR)\"" >> $(1); \ - echo "XEN_SCRIPT_DIR=\"$(XEN_SCRIPT_DIR)\"" >> $(1) + rm -f $(1).tmp; \ + echo "SBINDIR=\"$(SBINDIR)\"" >> $(1).tmp; \ + echo "BINDIR=\"$(BINDIR)\"" >> $(1).tmp; \ + echo "LIBEXEC=\"$(LIBEXEC)\"" >> $(1).tmp; \ + echo "LIBDIR=\"$(LIBDIR)\"" >> $(1).tmp; \ + echo "SHAREDIR=\"$(SHAREDIR)\"" >> $(1).tmp; \ + echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> $(1).tmp; \ + echo "XENFIRMWAREDIR=\"$(XENFIRMWAREDIR)\"" >> $(1).tmp; \ + echo "XEN_CONFIG_DIR=\"$(XEN_CONFIG_DIR)\"" >> $(1).tmp; \ + echo "XEN_SCRIPT_DIR=\"$(XEN_SCRIPT_DIR)\"" >> $(1).tmp; \ + if ! cmp $(1).tmp $(1); then mv -f $(1).tmp $(1); fi endef ifeq ($(debug),y) diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile index 9f74d4b284..d0be502e1d 100644 --- a/tools/libxl/Makefile +++ b/tools/libxl/Makefile @@ -52,12 +52,12 @@ $(LIBXLU_OBJS): $(AUTOINCS) @rm -f $*.[ch] $(FLEX) --header-file=$*.h --outfile=$*.c $< -genpath-target = $(call buildmakevars2file,_libxl_paths.h) +genpath-target = $(call buildmakevars2file,_libxl_paths.h.tmp) $(eval $(genpath-target)) _libxl_paths.h: genpath - sed -e "s/\([^=]*\)=\(.*\)/#define \1 \2/g" $@ >_$@ - mv _$@ $@ + sed -e "s/\([^=]*\)=\(.*\)/#define \1 \2/g" $@.tmp >$@.2.tmp + if ! cmp $@.2.tmp $@; then mv -f $@.2.tmp $@; fi libxl_paths.c: _libxl_paths.h